require(xtable)
require(ggplot2)

delta <- rho <- seq(0.1, 1, length.out = length.out)

sim_res <- list()
for (i in 1:length(delta)) {
  fn <- paste("./change/corr07/coef/res/sim_coef_change_mse_corr07_", i, ".rds", sep = '')
  sim_res[[i]] <-  readRDS(fn)
}

## data prep for plot
mse_lasso_est  <- do.call("cbind", lapply(sim_res, function(x) x[,1]))
mse_lasso_ora  <- do.call("cbind", lapply(sim_res, function(x) x[,2]))
mse_bridge     <- do.call("cbind", lapply(sim_res, function(x) x[,3]))
# mse_ridge  <- do.call("cbind", lapply(sim_res, function(x) x[,3]))
# mse_en     <- do.call("cbind", lapply(sim_res, function(x) x[,4]))

mse_lasso_dat1  <- data.frame(mse_lasso_est)
mse_lasso_dat2  <- data.frame(mse_lasso_ora)
mse_bridge_dat  <- data.frame(mse_bridge)
# mse_ridge_dat   <- data.frame(mse_ridge)
# mse_en_dat      <- data.frame(mse_en)

colnames(mse_lasso_dat1) <- colnames(mse_lasso_dat2) <- colnames(mse_bridge_dat)   <- paste("delta", delta, sep = '')
mse_lasso_dat1$rho  <- rho
mse_lasso_dat2$rho  <- rho
mse_bridge_dat$rho  <- rho

mse_lasso_dat1$method <- "HMM Lasso"
mse_lasso_dat2$method <- "Oracle Lasso"
mse_bridge_dat$method <- "HMBB"
# mse_ridge_dat$method  <- "Ridge"
# mse_en_dat$method     <- "ElasticNet"

mse_full <- rbind(mse_lasso_dat1, mse_lasso_dat2, mse_bridge_dat) #, mse_ridge_dat, mse_en_dat)
require(reshape2)

mse_full <- melt(mse_full, id.vars = c("rho", "method"), variable.name = "delta", value.name = 'L2')
mse_full$delta <- delta[as.numeric(mse_full$delta)]

mse_full$L21 <- round(mse_full$L2 / 1e1, 3)


## summary
summary.coef <- cbind(with(mse_full, tapply(L21, method, mean)),
                       with(mse_full, tapply(L21, method, sd)))
colnames(summary.coef) <- c("Mean", "SD")
summary.table <- xtable(summary.coef)
a <- print(summary.table, booktabs = TRUE)
write(a, file = "SI/Table5_column2.tex")

